/*
Sader engine framework
(c) Rachel J. Morris
MIT License
www.moosader.com
*/

#ifndef _Sader_ManagerState
#define _Sader_ManagerState

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

#include <vector>
#include <iostream>

#include "ManagerTemplate.h"
#include "State.h"

namespace sader
{
    class ManagerState : public ManagerTemplate<State*>
    {
        private:
            sader::Window* m_app;
            int m_activeStateIndex;
        public:
            void Init();
            void InitStates();
            void SetActiveState( int state );
            void Cleanup();
            int AddState( State* newState );
            int MainLoop();
            void SetRenderWindow( sader::Window* app );
    };
}

#endif
